/* 
 * File:   Mod_Soilphysics.h
 * Author: dechow
 *
 * Created on 30. Mai 2012, 14:13
 */

#ifndef MOD_SOILPHYSICS_H
#define	MOD_SOILPHYSICS_H
using namespace std;

class Mod_Soilphysics: public Mod_out_handling
{
    protected:      
        
    
    
    public:
       virtual int compute (time_intervall &ti); 
       map <string,int> IO_options; 
      Mod_Soilphysics(Mod_in *iinp);
     ~Mod_Soilphysics();								   
};

class Mod_Soilphysics_from_top_layer: public Mod_Soilphysics
{

protected:
    double shift;
    double depth_distr_fakt;
    double get_soc_ntot_with_exponential_distribution(int zx,double soc,double shift,double depth_distr_fakt);

public:
    Mod_Soilphysics_from_top_layer(map <string,int> &iIO_options,
                                   Mod_in *iinp,
                                   double sand, double silt, double clay, double bd, double ph, double soc, double ntot);
    ~Mod_Soilphysics_from_top_layer();
    int compute(time_intervall &ti);
    int initialize (double sand, double silt, double clay, double bd, double ph, double soc, double ntot);
};

#endif	/* MOD_SOILPHYSICS_H */

